home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / lib / X11 / config / sequentLib.rules < prev    next >
Encoding:
Text File  |  2006-12-20  |  10.7 KB  |  324 lines

  1. XCOMM $Xorg: sequentLib.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $
  2.  
  3. /*
  4.  * SVR4 shared library rules
  5.  */
  6.  
  7. #ifndef HasSharedLibraries
  8. # define HasSharedLibraries YES
  9. #endif
  10. #ifndef SharedDataSeparation
  11. # define SharedDataSeparation NO
  12. #endif
  13. #ifndef SharedCodeDef
  14. # define SharedCodeDef /**/
  15. #endif
  16. #ifndef SharedLibraryDef
  17. # define SharedLibraryDef /**/
  18. #endif
  19. #ifndef ShLibIncludeFile
  20. # define ShLibIncludeFile <sequentLib.tmpl>
  21. #endif
  22. #ifndef SharedLibraryLoadFlags
  23. /* Sequent may need to implement the X11R5 HasMultipleSockets ? */
  24. # if HasMultipleSockets
  25. #  define SharedLibraryLoadFlags -G -z text $(DEFAULTSOCKETLDOPTIONS)
  26. #  define ExtraLoadOptions $(DEFAULTSOCKETLDOPTIONS)
  27. # else
  28. /* #  define SharedLibraryLoadFlags -G -z text */
  29. #  define SharedLibraryLoadFlags -G
  30. #  define ExtraLoadOptions
  31. # endif
  32. #endif
  33. #ifndef PositionIndependentCFlags
  34. # if HasGcc2
  35. #  define PositionIndependentCFlags -fpic
  36. # else
  37. #  define PositionIndependentCFlags -K PIC
  38. # endif
  39. #endif
  40. #ifndef PositionIndependentCplusplusFlags
  41. # if HasGcc2ForCplusplus
  42. #  define PositionIndependentCplusplusFlags -fpic
  43. # else
  44. #  define PositionIndependentCplusplusFlags -K PIC
  45. # endif
  46. #endif
  47. #ifndef UseExportLists
  48. # define UseExportLists NO
  49. #endif
  50. #ifndef UseHidesymsLists
  51. # define UseHidesymsLists NO
  52. #endif
  53.  
  54. #if UseHidesymsLists
  55.  
  56. #ifndef BuildHidesyms
  57. #define BuildHidesyms(libname)                        @@\
  58. includes::                                @@\
  59.     MakeDir($(BUILDLIBDIR)/hidesyms)                 @@\
  60.     @( if [ -f Concat(lib,libname.hs) ]; \                @@\
  61.     then \                                @@\
  62.     (set -x; cd $(BUILDLIBDIR)/hidesyms && \            @@\
  63.     RemoveFile(Concat(lib,libname.hs)) && \                @@\
  64.     $(LN) $(BUILDLIBTOP)/../$(CURRENT_DIR)/Concat(lib,libname.hs) .); \    @@\
  65.     fi; )
  66. #endif /* BuildHidesyms */
  67.  
  68. /*
  69.  * InstallHidesyms - install library hidesyms directive file. (Sequent only)
  70.  * Logic cloned from InstallNonExecFile.
  71.  * We do not list the hidesyms directive file as a dependency since it
  72.  * may not exist.
  73.  */
  74. #ifndef InstallHidesyms
  75. #define InstallHidesyms(libname)                    @@\
  76. install::                                @@\
  77.     MakeDir($(DESTDIR)/usr/lib/hidesyms)                 @@\
  78.     @( if [ -f Concat(lib,libname.hs) ]; then \            @@\
  79.     $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) Concat(lib,libname.hs) $(DESTDIR)/usr/lib/hidesyms; fi; )
  80. #endif /* InstallHidesyms */
  81.  
  82. /*
  83.  * InstallLibrary - generate rules to install the indicated library.
  84.  *
  85.  * Sequent includes an extra "install::" target to install hidesyms files
  86.  * and an extra "includes::" target to export library hidesyms files.
  87.  * Therefore whenever InstallLibrary is expanded the hidesyms targets
  88.  * will also be expanded.  This avoids changes to generic cf *.tmpl files.
  89.  */
  90. #ifndef InstallLibrary
  91. #define    InstallLibrary(libname,dest)                    @@\
  92. install:: LibraryTargetName(libname)                    @@\
  93.     MakeDir($(DESTDIR)dest)                        @@\
  94.     $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetName(libname) $(DESTDIR)dest @@\
  95.     RanLibrary($(RANLIBINSTFLAGS) $(DESTDIR)dest/LibraryTargetName(libname))    @@\
  96.                                     @@\
  97. InstallHidesyms(libname)                        @@\
  98.                                     @@\
  99. BuildHidesyms(libname)
  100. #endif /* InstallLibrary */
  101.  
  102. /*
  103.  * Sequent additions to MakeLibrary for filtering objects
  104.  * with hidesyms before making a normal archive library.
  105.  */
  106.  
  107. #ifndef MakeLibrary
  108. #define MakeLibrary(libname,objlist) ( $(RM) -r tmp_hs ; \        @@\
  109.     LIBNAME_HS=`dirname libname`/`basename libname .a`.hs ; \    @@\
  110.     (if [ -f $$LIBNAME_HS ]; \                    @@\
  111.     then \                                @@\
  112.         LIBNAME_AR=../libname; \                    @@\
  113.         $(MKDIRHIER) tmp_hs && \                    @@\
  114.         $(CP) *.o tmp_hs && \                    @@\
  115.         cd tmp_hs && \                        @@\
  116.         $(HSCMD) -i ../$$LIBNAME_HS *.o ; \                @@\
  117.     else \                                @@\
  118.          LIBNAME_AR=libname; \                    @@\
  119.     fi; \                                @@\
  120.     $(AR) $$LIBNAME_AR objlist ) ;\                    @@\
  121.     $(RM) -r tmp_hs )
  122. #endif
  123.  
  124. #endif /* UseHidesymsLists */
  125.  
  126. /*
  127.  * InstallSharedLibrary - generate rules to install the shared library.
  128.  */
  129. #ifndef InstallSharedLibrary
  130. # define InstallSharedLibrary(libname,rev,dest)                @@\
  131. install:: Concat(lib,libname.so.rev)                     @@\
  132.     MakeDir($(DESTDIR)dest)                        @@\
  133.     $(INSTALL) $(INSTALLFLAGS) $(INSTSHLIBFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\
  134.     $(RM) Concat($(DESTDIR)dest/lib,libname.so)            @@\
  135.     $(LN) Concat(lib,libname.so.rev) Concat($(DESTDIR)dest/lib,libname.so)
  136. #endif /* InstallSharedLibrary */
  137.  
  138. /*
  139.  * InstallSharedLibraryData - generate rules to install the shared library data
  140.  */
  141. #ifndef InstallSharedLibraryData
  142. # define InstallSharedLibraryData(libname,rev,dest)
  143. #endif /* InstallSharedLibraryData */
  144.  
  145. #ifndef LinkWithExports
  146. # if UseHidesymsLists
  147. #  define LinkWithExports(libname,rev,solist,down,up) \
  148.     $(RM) -r tmp_hs                            @@\
  149.     ( if [ -f Concat(lib,libname.hs) ]; \                @@\
  150.     then \                                @@\
  151.         LIBNAME_SO=../$@~; \                    @@\
  152.         mkdir tmp_hs; \                        @@\
  153.         cd down; \                            @@\
  154.         $(CP) *.o up/tmp_hs && \                    @@\
  155.         cd up/tmp_hs && \                        @@\
  156.         $(HSCMD) -i ../Concat(lib,libname.hs) *.o; \        @@\
  157.     else \                                @@\
  158.         LIBNAME_SO=up/$@~; \                    @@\
  159.         cd down; \                            @@\
  160.     fi; \                                @@\
  161.     $(CCENVSETUP) $(LD) -o $$LIBNAME_SO $(SHLIBLDFLAGS) -h $@ solist $(REQUIREDLIBS) )    @@\
  162.     $(RM) -r tmp_hs
  163. # else
  164. # if UseExportLists
  165. #  define LinkWithExports(libname,rev,solist,down,up) \
  166.     (cd down; $(CCENVSETUP) $(LD) -o up/$@~ $(SHLIBLDFLAGS) -h $@ solist $(REQUIREDLIBS))    @@\
  167.     if [ -f Concat(lib,libname.elist) ]; then \            @@\
  168.         $(RM) down/$@.exports $@.list; \                @@\
  169.         $(CPP) $(ALLINCLUDES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(DEFINES) Concat(lib,libname.elist) | CppSedMagic >$@.list; \    @@\
  170.         $(EXPORTLISTGEN) $@~ $@.list > down/$@.exports; \        @@\
  171.         (cd down; $(CCENVSETUP) $(LD) -o up/$@~ $(SHLIBLDFLAGS) -h $@ ShlibExportListOpt($@.exports) solist $(REQUIREDLIBS)); \    @@\
  172.         $(RM) down/$@.exports $@.list; \                @@\
  173.     fi;
  174. # else
  175. #  define LinkWithExports(libname,rev,solist,down,up) \
  176.     (cd down; $(CCENVSETUP) $(LD) -o up/$@~ $(SHLIBLDFLAGS) -h $@ solist $(REQUIREDLIBS))
  177. # endif /* UseExportLists */
  178. # endif /* UseHidesymsLists */
  179. #endif
  180.  
  181. /*
  182.  * SharedLibraryTarget - generate rules to create a shared library;
  183.  * build it into a different name so that we do not hose people by having
  184.  * the library gone for long periods.
  185.  */
  186. #ifndef SharedLibraryTarget
  187. # define SharedLibraryTarget(libname,rev,solist,down,up)        @@\
  188. AllTarget(Concat(lib,libname.so.rev))                    @@\
  189.                                     @@\
  190. Concat(lib,libname.so.rev):  solist $(EXTRALIBRARYDEPS)            @@\
  191.     $(RM) $@~                            @@\
  192.     LinkWithExports(libname,rev,solist,down,up)            @@\
  193.     $(RM) $@                             @@\
  194.     $(MV) $@~ $@                            @@\
  195.     $(RM) Concat(lib,libname.so)                    @@\
  196.     $(LN) $@ Concat(lib,libname.so)                    @@\
  197.     LinkBuildLibrary($@)                        @@\
  198.     LinkBuildLibrary(Concat(lib,libname.so))            @@\
  199.                                     @@\
  200. clean::                                    @@\
  201.     $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so)
  202.  
  203. #endif /* SharedLibraryTarget */
  204.  
  205. /*
  206.  * SharedLibraryDataTarget - generate rules to create shlib data file;
  207.  */
  208. #ifndef SharedLibraryDataTarget
  209. # define SharedLibraryDataTarget(libname,rev,salist)
  210. #endif /* SharedLibraryTarget */
  211.  
  212. /*
  213.  * Sequent does not use the InstallManPageAliases rule.
  214.  * Sequent customer installation procedure uses makealiases(1M)
  215.  * after the initial product manpages are installed in system directories.
  216.  */
  217. #define InstallManPageAliases(file,destdir,aliases) /* use makealiases(1M) */
  218.  
  219. /*
  220.  * Man pages need to be formatted when installed, so override the default
  221.  * imake rules.
  222.  */
  223. #if defined(UseInstalled)
  224. MANCAT = cat
  225. #else
  226. MANCAT = sed -f $(CONFIGSRC)/util/installman.sed
  227. #endif
  228.  
  229. #define InstallManPageLong(file,destdir,dest)                @@\
  230. all:: file.$(MANSUFFIX).z                        @@\
  231.                                     @@\
  232. file.$(MANSUFFIX).z:: file.man                        @@\
  233.     @if [ -f file.man ]; \                        @@\
  234.     then \                                @@\
  235.     $(MANCAT) file.man | $(NEQN) | \                @@\
  236.     $(TBL) | $(NROFF) $(MANMACROS) | $(COL) > file.$(MANSUFFIX); \    @@\
  237.     $(RM) file.$(MANSUFFIX).z; \                    @@\
  238.     $(PACK) -f file.$(MANSUFFIX); \                    @@\
  239.     fi                                 @@\
  240.                                     @@\
  241. file.man::                                @@\
  242.                                     @@\
  243. install.man::                                @@\
  244.     MakeDir($(DESTDIR)destdir)                    @@\
  245.     @if [ -f file.$(MANSUFFIX).z ]; \                @@\
  246.     then \                                @@\
  247.     $(INSTALL) -c $(INSTMANFLAGS) file.$(MANSUFFIX).z $(DESTDIR)destdir/dest.$(MANSUFFIX).z; \@@\
  248.     fi
  249.  
  250. #define InstallMultipleManSuffix(list,dest,suff)            @@\
  251. install.man::                                @@\
  252.     MakeDir($(DESTDIR)dest)                        @@\
  253.     MakeFlagsToShellFlags(i,set +e); \                @@\
  254.     @for i in list; do \                        @@\
  255.       (set -x; \                            @@\
  256.     $(MANCAT) $$i.suff | $(NEQN) | \                @@\
  257.     $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$i.suff; \    @@\
  258.       $(PACK) -f /tmp/$$i.suff; \                    @@\
  259.       $(INSTALL) -c $(INSTMANFLAGS) /tmp/$$i.suff.z $(DESTDIR)dest/$$i.$(MANSUFFIX).z; \    @@\
  260.       $(RM) /tmp/$$i.suff.z); \                    @@\
  261.     done
  262.  
  263. #define InstallMultipleMan(list,dest)                    @@\
  264.     InstallMultipleManSuffix(list,dest,man)
  265.  
  266. /* 
  267.  * InstallMotifManPage relies on the fact that all the
  268.  * Imakefiles where it is used (or Makefile default value)
  269.  * will correctly define MANSUFFIX which may be
  270.  * either "section" or "section"x.
  271.  * Since we rely on MANSUFFIX being defined correctly in each Makefile
  272.  * we can also rely on MANDIR = $(MANSOURCEPATH)section
  273.  *
  274.  * CAUTION:
  275.  * The source file "file.section" may have the same name as
  276.  * the target file "file.$(MANSUFFIX)" so we must use temporary files
  277.  * so that we do not overwrite "file.section".
  278.  */
  279. #define InstallMotifManPage(file,section)                @@\
  280. all:: file.$(MANSUFFIX).z                        @@\
  281.                                     @@\
  282. file.$(MANSUFFIX).z: file.section                    @@\
  283.     @$(MANCAT) file.section | $(NEQN) | \                @@\
  284.     $(TBL) | $(NROFF) $(MANMACROS) | $(COL) > /tmp/file.man; \    @@\
  285.     $(RM) /tmp/file.man.z; \                    @@\
  286.     $(PACK) -f /tmp/file.man; \                    @@\
  287.     $(CP) /tmp/file.man.z file.$(MANSUFFIX).z; \            @@\
  288.     $(RM) /tmp/file.man.z                        @@\
  289.                                     @@\
  290. install.man:: file.$(MANSUFFIX).z                    @@\
  291.     MakeDir($(DESTDIR)$(MANDIR))                    @@\
  292.     $(INSTALL) -c $(INSTMANFLAGS) file.$(MANSUFFIX).z $(DESTDIR)$(MANDIR)/file.$(MANSUFFIX).z
  293.  
  294. /* 
  295.  * The Real_MessageCatalogRule defined in Motif.rules does not
  296.  * install the generated catalog file.  This rule adds an install
  297.  * clause to do that.
  298.  */
  299. #define Real_MessageCatalogRule(prefix)                    @@\
  300. prefix.cat Concat(prefix,MsgCatI.h):                    @@\
  301.     $(RM) Concat(prefix,MsgCatI.h) prefix.cat $(MLOCSRC)/C/msg/prefix.msg    @@\
  302.     $(MKCATTOOL) Concat(prefix,MsgCatI.h) prefix.msg > $(MLOCSRC)/C/msg/prefix.msg    @@\
  303.     $(GENCAT) prefix.cat $(MLOCSRC)/C/msg/prefix.msg        @@\
  304.                                     @@\
  305. includes:: prefix.cat Concat(prefix,MsgCatI.h)                @@\
  306.                                     @@\
  307. depend:: prefix.cat Concat(prefix,MsgCatI.h)                @@\
  308.                                     @@\
  309. all:: prefix.cat                            @@\
  310.                                     @@\
  311. install:: prefix.cat                            @@\
  312.     MakeDir($(DESTDIR)$(MESSAGECATDIR))                @@\
  313.     $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) prefix.cat $(DESTDIR)$(MESSAGECATDIR)/prefix.cat    @@\
  314.     $(RM) $(DESTDIR)$(MESSAGECATDIR)/prefix                @@\
  315.     $(LN) prefix.cat $(DESTDIR)$(MESSAGECATDIR)/prefix        @@\
  316.     MakeDir($(DESTDIR)$(NLSDIR))                    @@\
  317.     $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) prefix.cat $(DESTDIR)$(NLSDIR)/prefix.cat    @@\
  318.     $(RM) $(DESTDIR)$(NLSDIR)/prefix                @@\
  319.     $(LN) prefix.cat $(DESTDIR)$(NLSDIR)/prefix            @@\
  320.                                     @@\
  321. clean::                                    @@\
  322.     $(RM) prefix.cat Concat(prefix,MsgCatI.h)
  323.  
  324.